package pattern.singleton;

/**
 * @Author Ldj
 * @Date 2018/3/29 9:57
 * @Description 单例模式 ----  懒汉式  dubbo-check校验 保证线程安全 （在类加载时就完成了初始化，所以类加载比较慢，但获取对象的速度快）
 */
public class Singleton3 {

    /**
     * 创建一个单例对象
     */
    private static Singleton3 singleton ;

    /**
     * 创建一个私有构造，防止类被实例化
     */
    private void Singleton(){}

    /**
     * dubbo-check校验 保证线程安全
     * @return
     */
    public static Singleton3 newInstance(){
        if(singleton==null){
            synchronized (Singleton3.class){
                if(singleton==null){
                    singleton = new Singleton3();
                }
            }
        }
        return singleton;
    }


}
